A struct to group all rules according to their potential kinds.
This can greatly reduce traversal times and skip unmatchable rules.
Rules are referenced by their index in the rules vector.
A struct to store information to deserialize rules.
A collection of rules to run one round of scanning.
Rules will be grouped together based on their language, path globbing and pattern rule.
A rule object to find matching AST nodes. We have three categories of rules in ast-grep.
Used for global rules, rewriters, and pyo3/napi